package com.example.shuiyin.task;

import com.example.shuiyin.service.FileService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
@RequiredArgsConstructor
@Slf4j
public class FileCleanupTask {

    private final FileService fileService;
    
    /**
     * 每天凌晨2点清理测试文件
     */
    @Scheduled(cron = "0 0 2 * * ?")
    public void cleanupTestFiles() {
        try {
            log.info("开始执行测试文件清理任务");
            int count = fileService.cleanupTestFileMetadata("test/");
            log.info("测试文件清理任务完成，共清理 {} 个文件", count);
        } catch (Exception e) {
            log.error("测试文件清理任务执行失败: {}", e.getMessage(), e);
        }
    }
    
    /**
     * 每月1日凌晨3点清理30天前的临时文件
     */
    @Scheduled(cron = "0 0 3 1 * ?")
    public void cleanupOldTempFiles() {
        try {
            log.info("开始执行临时文件清理任务");
            int count = fileService.cleanupTestFileMetadata("temp/");
            log.info("临时文件清理任务完成，共清理 {} 个文件", count);
        } catch (Exception e) {
            log.error("临时文件清理任务执行失败: {}", e.getMessage(), e);
        }
    }
} 